
#ifndef __CLUSTER_H__
#define __CLUSTER_H__
#include "utils.h"
#include "DataPoint.h"

namespace com
{
    namespace dbscan
    {
        class Cluster
        {
            private:
                vector<const DataPoint * > keys;
                vector<const DataPoint *> dataPoints;
                int clusterName;
            public:
                inline size_t getDataPointsSize() const
                {
                    return dataPoints.size();
                }

                inline vector<const DataPoint *> &getDataPoints()
                {
                    return dataPoints;
                }

                inline const vector<const DataPoint *> &getDataPoints()const
                {
                    return dataPoints;
                }

                inline void setDataPoints (const vector<const DataPoint *> &_dataPoints)
                {
                    dataPoints = _dataPoints;
                }

                inline int getClusterName() const
                {
                    return clusterName;
                }

                inline void setClusterName (int i)
                {
                    clusterName = i;
                }

                inline void clear()
                {
                    keys.clear();
                    dataPoints.clear();
                }

                vector<const DataPoint * > &getKeys()
                {
                    return keys;
                }
        };
    }
}

#endif /*__CLUSTER_H_*/